<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>

  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <title>Filtre AviSynth Animate/ApplyRange</title>


  <link rel="stylesheet" type="text/css" href="../../avisynth.css">

</head>


<body>

<h2>
<a name="Animate"></a>Animate
/ ApplyRange
</h2>

<p><code>Animate </code>(<var>clip, int
start_frame, int end_frame, string filtername,
start_args, end_args</var>)<br>

<code>ApplyRange </code>(<var>clip, int start_frame,
int end_frame, string
filtername, args</var>)
</p>

<p><code>Animate</code>&nbsp;est un m&eacute;ta-filtre
qui &eacute;value le param&egrave;tre <var>filter</var>&nbsp;en
faisant constamment varier ses arguments.&nbsp;A l'image <var>start_frame</var>&nbsp;et
avant, le <var>filter</var>&nbsp;est
&eacute;valu&eacute; avec les arguments donn&eacute;es par <var>start_args</var>.&nbsp;A
l'image <var>end_frame</var> et apr&egrave;s, le <var>filter</var>&nbsp;est
&eacute;valu&eacute; avec les arguments donn&eacute;es par <var>end_args</var>.&nbsp;Entre,
les arguments sont interpol&eacute;s lin&eacute;airement pour
obtenir une transition douce.
</p>

<p><code>ApplyRange</code>&nbsp;est un cas
particulier de <code>Animate</code> o&ugrave; <var>start_args</var>
= <var>end_args</var>,&nbsp;et qui est
pr&eacute;sent depuis <em>v2.51</em>.&nbsp;Ce
filtre peut &ecirc;tre utilis&eacute; quand vous voulez
appliquer un certain filtre sur une certaine plage d'image d'une video.&nbsp;Une
autre diff&eacute;rence avec <code>Animate</code>&nbsp;est
que <var>args</var>&nbsp;ne peuvent contenir une video.
A partir de <em>v2.53</em> ce filtre supporte l'audio,
et&nbsp;<var>start_frame</var> peut &ecirc;tre
&eacute;gal &agrave; <var>end_frame</var>
(de mani&egrave;re &agrave; ce qu'une seule image soit
trait&eacute;e).</p>

<p>Le <var>filter </var>doit &ecirc;tre
entour&eacute; de guillemets&nbsp;(c'est une cha&icirc;ne
de caract&egrave;res),&nbsp;et les deux listes d'arguments <var>start_args</var>
et <var>end_args </var>ne sont pas entre
parenth&egrave;ses.&nbsp;Les cha&icirc;nes de
caract&egrave;res et les video ne peuvent pas &ecirc;tre
interpol&eacute;es,
et doivent donc &ecirc;tre identiques dans les deux listes
d'arguments. Une remarque importante cependant: si vous utilisez une
video en tant que premier argument, celle ci ne doit pas &ecirc;tre
utilis&eacute;e dans <var>start_args</var> et <var>
end_args</var>. Par exemple:</p>

<pre>v = Version()<br>Animate(v,0,149,"Crop", v,0,0,64,32, v,316,0,64,32)</pre>

<p>renvoie une erreur, puisque la premi&egrave;re image
(donn&eacute;e par la fonction animate) serait calcul&eacute;e
avec la syntaxe non valide Crop(v, v, 0, 0, 64, 32).
</p>

<p>Ce filtre ne traitera pas correctement des changements de
pistes audio,
et je ne recommande donc pas l'utilisation de filtre qui modifierai la
piste audio. Et s'il vous plait, ne mettez pas des
param&egrave;tres initiaux et finaux qui
produiraient une image de sortie de r&eacute;solution
diff&eacute;rente.
</p>

<p>L'argument&nbsp;<var>filtername</var>&nbsp;peut
&ecirc;tre <code>Animate</code>&nbsp;si vous
souhaitez une interpolation quadratique plut&ocirc;t que
lin&eacute;aire.
</p>

<p><b>Exemples:</b>
</p>

<pre># Cr&eacute; une version en mouvement de la video "Version":<br>ver = Version()<br>Animate(0,149,"Crop", ver,0,0,64,32, ver,316,0,64,32)<br><br># La m&ecirc;me chose autrement:<br>ver = Version()<br>Animate(ver,0,149,"Crop", 0,0,64,32, 316,0,64,32)<br><br># Fondu au blanc:<br>AviSource("E:\pdwork\DO-Heaven.AVI")<br>Animate(100,200,"Levels", 0,1,255,0,255, 0,1,255,255,255)<br><br># Zoom au centre d'une video de 320x240, en commencant avec un facteur d'&eacute;chelle de<br># 1:1 &agrave; l'image 100 et finissant avec un facteur d'&eacute;chelle de 4:1 <br># &agrave; l'image 200:<br>clip = AviSource("E:\pdwork\DO-Heaven.avi")<br>Animate(100,200,"BicubicResize", clip,320,240,0,0,320,240, clip,320,240,120,90,80,60)<br># Animate(clip, 100,200,"BicubicResize", 320,240,0,0,320,240, 320,240,120,90,80,60) # marche &eacute;galement<br># Dezoom le texte "Hello, World!" en partant du centre d'une video de 320x240:<br>BlankClip(width=320, height=240)<br>Animate(0,48,"Subtitle", "Hello, World!",160,120,0,99999,"Arial",0,<br>&nbsp; \&nbsp; "Hello, World!",25,130,0,99999,"Arial",48)</pre>

<pre># Zoomer sur le clip c2 en le superposant au clip c1:<br>Function myfunc(clip c1, clip c2, int x, int y, int w, int h)<br>{<br>w = w - w%2<br>h = h - h%2<br>my_c2 = BicubicResize(c2,w,h)<br>Overlay(c1,my_c2,x,y)<br>}<br><br>c1 = AviSource("D:\Captures\jewel.avi")<br>c2 = AviSource("D:\Captures\atomic.avi").BicubicResize(320,240) # c2 est plus petit que c1<br>Animate(0,1000,"myfunc",c1,c2,10,10,10,10,c1,c2,300,300,360,288)<br># orou bien<br># Animate(c1,0,1000,"myfunc", c2,10,10,10,10, c2,300,300,360,288)<br><br># par contre, la ligne suivante ne marche pas puisque 3 clips sont pass&eacute;s &agrave; myfunc (c1, c1 et c2), alors que seulement 2 sont autoris&eacute;s:<br># Animate(c1,0,1000,"myfunc",c1,c2,10,10,10,10,c1,c2,300,300,360,288)</pre>

<pre># Une petite image s'agrandit sur une video noire jusqu'a la remplacer:<br>function res(clip clip, clip "LClip", int "width", int "height", int "centerX", int "centerY") {<br>LClip = BicubicResize(LClip, width, height)<br>Overlay(clip, LClip, centerX-LClip.width/2, centerY-LClip.height/2)<br>}<br><br>function resize(clip clip, clip "LClip", int "start_frame", int "start_width", int "start_height",<br>\ int "end_frame", int "end_width", int "end_height", int "centerX", int "centerY") {<br>return Animate(start_frame, end_frame, "res", clip, LClip, start_width, start_height, centerX, centerY,<br>\ clip, LClip, end_width, end_height, centerX, centerY)<br>}<br><br>clip = AviSource("D:\captures\jewel.avi").BicubicResize(640,480).ConvertToRGB()<br>black = BlankClip(clip)<br><br>resize(black, clip, 0, 120, 120*clip.height/clip.width, 500, 640, 480, clip.width/2, clip.height/2)</pre>

<pre>ver = Version()<br>return ver.ApplyRange(0,149,"Crop", 158,0,64,32)<br><br>AviSource("E:\pdwork\DO-Heaven.avi").BicubicResize(320,240)<br>ApplyRange(0,48,"Subtitle", "Hello, World!",25,130,0,99999,"Arial",48)<br><br>#qui est la m&ecirc;me chose que:<br>clip = AviSource("E:\pdwork\DO-Heaven.avi").BicubicResize(320,240)<br>ApplyRange(clip, 0,48,"Subtitle", "Hello, World!",25,130,0,99999,"Arial",48)</pre>

<p><kbd>$Date: 2005/10/06 21:10:07 $<br>

French translation date: 2005/10/06 JasonFly <a href="mailto:macpaille@users.sourceforge.net">macpaille@users.sourceforge.net</a></kbd></p>

<form><input value="Back" onclick="history.go(-1)" type="button"></form>

</body>
</html>
